package com.howie.gulimall.product.feign;

import com.howie.common.utils.R;
import com.howie.gulimall.product.vo.SkuHasStockVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @description: Feign远程客户端接口
 * @author: laizhenghua
 * @date: 2021/1/22 21:49
 */
@FeignClient("gulimall-ware")
public interface WareFeignService {
    /*
    远程客户端调用此方法时，关于对返回结果的处理存在一些问题，首先gulimall-ware服务的此接口返回值为SkuHasStockVo的集合类型，并且封装到
    了R对象里(key=data)，远程客户端接收时需要调用get("data")方法才能获取到远程方服的返回值，但是对于返回值的处理又十分麻烦！这里我们有
    3种解决方案！
    1、R设计的时候可以加上泛型
    2、直接返回我们想要的结果
    3、自己封装解析结果
    */
    @PostMapping("/ware/waresku/has_stock")
    public R getSkuHasStock(@RequestBody List<Long> skuIds);
}
